package com.sg.service.biz.bff.impl;

import cn.hutool.core.collection.CollectionUtil;
import com.sg.common.util.RedisUtil;
import com.sg.dto.biz.bff.req.BffQueryMultiContentOperateProgressListReqDto;
import com.sg.dto.biz.bff.req.BffQuerySingleContentOperateProgressDetailReqDto;
import com.sg.dto.biz.bff.res.BffQueryMultiContentOperateProgressListRespDto;
import com.sg.dto.biz.bff.res.BffQuerySingleContentOperateProgressDetailRespDto;
import com.sg.dto.integration.app.QueryMultiContentOperateProgressListReqDto;
import com.sg.dto.integration.app.QueryMultiContentOperateProgressListRespDto;
import com.sg.dto.integration.app.QuerySingleContentOperateProgressDetailReqDto;
import com.sg.dto.integration.app.QuerySingleContentOperateProgressDetailRespDto;
import com.sg.service.biz.bff.ProgressPublicTechnicaCapacityService;
import com.wicket.okrapp.integration.ProgressPublicTechnicaCapacityService;
import com.sg.common.exception.Assert;
import org.apache.skywalking.apm.toolkit.trace.Tag;
import org.apache.skywalking.apm.toolkit.trace.Tags;
import org.apache.skywalking.apm.toolkit.trace.Trace;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.stream.Collectors;

/**
 * @author ：
 * @version 1.0
 * @date ：
 */
@Service
public class ProgressPublicTechnicaCapacityServiceImpl
        implements ProgressPublicTechnicaCapacityService {

    @Resource
    private RedisUtil redisUtil;
    @Resource
    com.sg.service.biz.app.ProgressPublicTechnicaCapacityService fwAppProgressPublicTechnicaCapacityClient;

    /**
     * B3查询单内容操作进度详情(管理)[6597]
     * gen by moon at 5/31/2023, 11:33:50 PM
     */
    @Trace(operationName = "B3查询单内容操作进度详情(管理)")
    @Tags({@Tag(key = "参数", value = "arg[0]"),
            @Tag(key = "返回值", value = "returnedObj")})
    @Override
    public BffQuerySingleContentOperateProgressDetailRespDto querySingleContentOperateProgressDetail(BffQuerySingleContentOperateProgressDetailReqDto reqDto) {


        QuerySingleContentOperateProgressDetailRespDto querySingleContentOperateProgressDetailRespDto_1 = null;
//步骤0: D3查询单内容操作进度详情 - querySingleContentOperateProgressDetail
        QuerySingleContentOperateProgressDetailRespDto querySingleContentOperateProgressDetailRespDto = null;
        QuerySingleContentOperateProgressDetailReqDto querySingleContentOperateProgressDetailReqDto = new QuerySingleContentOperateProgressDetailReqDto();
        if (reqDto != null) {
            querySingleContentOperateProgressDetailReqDto.setBatchSetId(reqDto.getBatchSetId());//SimpleFieldAssign//sourceId:926429_1
            querySingleContentOperateProgressDetailReqDto.setThemeContentId(reqDto.getThemeContentId());//SimpleFieldAssign//sourceId:926430_1
            querySingleContentOperateProgressDetailReqDto.setCustomField(reqDto.getCustomField());//SimpleFieldAssign//sourceId:999773_1
        }

        /*D3查询单内容操作进度详情[6564]   */
        Assert.isNull(querySingleContentOperateProgressDetailReqDto.getBatchSetId(), "B3查询单内容操作进度详情(管理)-D3查询单内容操作进度详情-批次设置对象ID不能为空", false);
        Assert.isNull(querySingleContentOperateProgressDetailReqDto.getThemeContentId(), "B3查询单内容操作进度详情(管理)-D3查询单内容操作进度详情-主题内容ID不能为空", false);
        querySingleContentOperateProgressDetailRespDto = fwAppProgressPublicTechnicaCapacityClient.querySingleContentOperateProgressDetail(querySingleContentOperateProgressDetailReqDto).getData()/*vcase invoke 跨dubbo调用;*/;


        querySingleContentOperateProgressDetailRespDto_1 = querySingleContentOperateProgressDetailRespDto;

        BffQuerySingleContentOperateProgressDetailRespDto retData = new BffQuerySingleContentOperateProgressDetailRespDto();
        if (querySingleContentOperateProgressDetailRespDto_1 != null) {
            retData.setEntityId(querySingleContentOperateProgressDetailRespDto_1.getEntityId());//SimpleFieldAssign//sourceId:999774_1
            retData.setProgressUpdateState(querySingleContentOperateProgressDetailRespDto_1.getProgressUpdateState());//SimpleFieldAssign//sourceId:999775_1
            retData.setCurrentUpdateProgressValue(querySingleContentOperateProgressDetailRespDto_1.getCurrentUpdateProgressValue());//SimpleFieldAssign//sourceId:999776_1
            retData.setBackGroundAddress(querySingleContentOperateProgressDetailRespDto_1.getBackGroundAddress());//SimpleFieldAssign//sourceId:999054_1
        }


        return retData;
    }

    /**
     * B3查询多内容操作进度列表(管理)[6596]
     * gen by moon at 5/31/2023, 11:33:45 PM
     */
    @Trace(operationName = "B3查询多内容操作进度列表(管理)")
    @Tags({@Tag(key = "参数", value = "arg[0]"),
            @Tag(key = "返回值", value = "returnedObj")})
    @Override
    public BffQueryMultiContentOperateProgressListRespDto queryMultiContentOperateProgressList(BffQueryMultiContentOperateProgressListReqDto reqDto) {


        QueryMultiContentOperateProgressListRespDto queryMultiContentOperateProgressListRespDto_1 = null;
//步骤0: D3查询多内容操作进度列表 - queryMultiContentOperateProgressList
        QueryMultiContentOperateProgressListRespDto queryMultiContentOperateProgressListRespDto = null;
        QueryMultiContentOperateProgressListReqDto queryMultiContentOperateProgressListReqDto = new QueryMultiContentOperateProgressListReqDto();
        if (reqDto != null) {
            queryMultiContentOperateProgressListReqDto.setEvaObjTypeCode(reqDto.getEvaObjTypeCode());//SimpleFieldAssign//sourceId:926387_1
            queryMultiContentOperateProgressListReqDto.setTableTypeCode(reqDto.getTableTypeCode());//SimpleFieldAssign//sourceId:926385_1
            queryMultiContentOperateProgressListReqDto.setEntityId(reqDto.getEntityId());//SimpleFieldAssign//sourceId:926386_1
            queryMultiContentOperateProgressListReqDto.setEvaluationTemplateId(reqDto.getEvaluationTemplateId());//SimpleFieldAssign//sourceId:926388_1
            queryMultiContentOperateProgressListReqDto.setCustomField(reqDto.getCustomField());//SimpleFieldAssign//sourceId:926039_1
        }

        /*D3查询多内容操作进度列表[6563]   */
        Assert.isNull(queryMultiContentOperateProgressListReqDto.getEvaObjTypeCode(), "B3查询多内容操作进度列表(管理)-D3查询多内容操作进度列表-被评对象类型编码不能为空", false);
        Assert.isNull(queryMultiContentOperateProgressListReqDto.getTableTypeCode(), "B3查询多内容操作进度列表(管理)-D3查询多内容操作进度列表-内容表类型编码不能为空", false);
        Assert.isNull(queryMultiContentOperateProgressListReqDto.getEntityId(), "B3查询多内容操作进度列表(管理)-D3查询多内容操作进度列表-内容表主键ID不能为空", false);
        Assert.isNull(queryMultiContentOperateProgressListReqDto.getEvaluationTemplateId(), "B3查询多内容操作进度列表(管理)-D3查询多内容操作进度列表-冗余评价模板ID不能为空", false);
        Assert.isNull(queryMultiContentOperateProgressListReqDto.getCustomField(), "B3查询多内容操作进度列表(管理)-D3查询多内容操作进度列表-是否包含自身目标内容不能为空", false);
        queryMultiContentOperateProgressListRespDto = fwAppProgressPublicTechnicaCapacityClient.queryMultiContentOperateProgressList(queryMultiContentOperateProgressListReqDto).getData()/*vcase invoke 跨dubbo调用;*/;


        queryMultiContentOperateProgressListRespDto_1 = queryMultiContentOperateProgressListRespDto;

        BffQueryMultiContentOperateProgressListRespDto retData = new BffQueryMultiContentOperateProgressListRespDto();
        if (queryMultiContentOperateProgressListRespDto_1 != null && queryMultiContentOperateProgressListRespDto_1.getMultiContentOperateProgressList() != null && !CollectionUtil.isEmpty(queryMultiContentOperateProgressListRespDto_1.getMultiContentOperateProgressList())) {
            retData.setMultiContentOperateProgressList(queryMultiContentOperateProgressListRespDto_1.getMultiContentOperateProgressList().stream().map(item -> item.getTimingTaskDispatchId())
                    .collect(Collectors.toList()));/*list-to-strings*///sourceId:926062_1
        }


        return retData;
    }
    //
}
